package servlets;

import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import domein.Dienst;
import domein.ParkeerPlaats;
import domein.ParkeerTerrein;
import domein.Parkeren;

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet(name="MaakvrijServlet", urlPatterns="/medewerker/Vrijmaken.do")
public class MaakvrijServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	/**
	 * Default constructor.
	 */
	public MaakvrijServlet() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String parkeerplaatsNaam = request.getParameter("parkeerplaats");
		String action = request.getParameter("action");
		Integer timeentry = Integer.parseInt(request.getParameter("timeentry"));		
		if (parkeerplaatsNaam == null || parkeerplaatsNaam.isEmpty() || timeentry == null ) {
			response.sendRedirect("parkeerplaats-vrijmaken.jsp?error=Geen+parkeerplaats+geselecteerd");
			return;
		}

		try {			
			ParkeerPlaats p = ParkeerTerrein.getParkeerplaats(parkeerplaatsNaam);	
			
			//p.setBezet(false);
			if(action.equals("afmelden")){
				ArrayList<Dienst> afgenomenDiensten = (ArrayList<Dienst>)request.getSession().getAttribute(("afgenomenDiensten"));
				if(afgenomenDiensten == null){
					afgenomenDiensten = new ArrayList<Dienst>();
				}
				Dienst dienst = new Parkeren(p, p.getTimeEntry(timeentry).getStartTijd(), p.getTimeEntry(timeentry).getEindTijd());
				afgenomenDiensten.add(dienst);	
				request.getSession().setAttribute("afgenomenDiensten", afgenomenDiensten);
			}			
			p.removeTimeEntry(p.getTimeEntry(timeentry));
			response.sendRedirect("parkeerplaats-vrijmaken.jsp?succesvolvrij=1");
			return;							
		} catch (IllegalArgumentException e) {
			response.sendRedirect("parkeerplaats-vrijmaken.jsp?error="
					+ URLEncoder.encode(e.toString(), "UTF-8"));
			return;
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

	}

}
